﻿using GraphicROI;
using Newtonsoft.Json;

namespace vciplib0
{
    public class PRM_ROI
    {
        /// <summary>
        /// 21: +模式   22: -模式   0：膨胀模式
        /// </summary>
        public int ROIMode { get; set; } = 0;

        public int ROIType { get; set; } = 0;
        public int ROIIndex { get; set; } = 0;
        public object ROI { get; set; } = new object();

        public int DialateSize { get; set; } = 0; //膨胀模式使用此数据

        /// <summary>
        /// 
        /// </summary>
        /// <param name="Type">0：HRegion  1：rect1  2：rect2   3：circle </param>
        /// <param name="Index"></param>
        public PRM_ROI(int Type, int Index)
        {
            ROIType = Type;
            ROIIndex = Index;
        }
        public override string ToString()
        {
            return string.Format("Index:{0} ROI Type:{1}", ROIIndex, getTypeString());
        }
        public string getTypeString()
        {
            switch (ROIType)
            {
                case 0:
                    return "HRegion";
                case 1:
                    return "Rectangle1";
                case 2:
                    return "Rectangle2";
                case 3:
                    return "Circle";
                case 4:
                    return "Rectangle4";
                default:
                    return "HRegion";
            }
        }
        public GraphicROI.ROI GetViewROI()
        {
            switch (ROIType)
            {
                //case 1:
                //    ROIRectangle1 tempROI1;
                //    try
                //    {
                //        tempROI1 = JsonConvert.DeserializeObject<ROIRectangle1>(this.ROI.ToString());
                //    }
                //    catch
                //    {
                //        tempROI1 = new ROIRectangle1(false);
                //        tempROI1.CreateROI(100, 100, 200, 200);           //XJP 20220830
                //    }
                //    return tempROI1;
                //case 2:
                //    ROIRectangle2 tempROI2;
                //    try
                //    {
                //        tempROI2 = JsonConvert.DeserializeObject<ROIRectangle2>(this.ROI.ToString());
                //    }
                //    catch
                //    {
                //        tempROI2 = new ROIRectangle2();
                //        tempROI2.CreateROI(100, 100, 0, 0);     //XJP 20220830
                //    }
                //    return tempROI2;
                //case 3:
                //    ROICircle tempROI3;
                //    try
                //    {
                //        tempROI3 = JsonConvert.DeserializeObject<ROICircle>(this.ROI.ToString());
                //    }
                //    catch
                //    {
                //        tempROI3 = new ROICircle();
                //        tempROI3.CreateROI(100, 100, 100, 100);     
                //    }
                //    return tempROI3;
                //case 4:
                //    ROIRectangle4 tempROI4;
                //    try
                //    {
                //        tempROI4 = JsonConvert.DeserializeObject<ROIRectangle4>(this.ROI.ToString());
                //    }
                //    catch
                //    {
                //        tempROI4 = new ROIRectangle4(false);
                //        tempROI4.CreateROI(100, 100, 0, 0);   //XJP 20220830
                //    }
                //    return tempROI4;
                default:
                    ROIType = 1;
                    ROIRectangle1 r = new ROIRectangle1(false);
                    r.CreateROI(200, 200, 100, 100);    //XJP 20220830
                    return r;
            }
        }
    }
}
